#ifndef MANAGERCONTROLLER_H
#define MANAGERCONTROLLER_H

#include"usercontroller.h"
#include"../dao/approveexam.h"

class ManagerController:public UserController
{
public:
    ManagerController();

    //用户登录，返回是否登录成功，以及用户信息查询查询，用户名密码错误则返回false
    bool login(User& user);

    OrganizationInfo getOrg(){return orginfo;}


    //用户注册，存在则返回失败，成功返回true，注册信息需要带有组织信息
    bool registerUser(User& user,OrganizationInfo& org);

    //添加窗口
    bool addWindow(WindowInfo& win);

    //审批加盟申请
    bool examJoin(int exam_id, int status);

    //查询组织下的所有待审批的加盟申请对应的用户，调用approveExam中的同名函数即可
    bool selectOrgJoin(vector<User>& users,vector<int> &exam_ids);

    //窗口申请的信息查询,调用approveExam中的同名函数即可
     bool selectOrgExamWindow(vector<WindowInfo>& wins,vector<User>& users,vector<int>& exam_ids);

    //商家开窗口申请审批，调用ApproveExam中的窗口审批状态修改函数alterWindowExam，
     //更改exam_id对应审批的窗口在windowInfo表中的状态(status)信息，（若状态为审批通过，则窗口为运营态，否则为空闲态
    bool examWindow(int exam_id,WindowInfo win,int status);

    //查询组织下的所有审批的菜品,调用approveExam中的同名函数即可
    bool selectOrgExamFood(vector<SaleBase*>& sales,vector<WindowInfo>& wins);

    //菜品审批，相当于修改表中的status值，调用saleDao中的同名函数
    bool examFood(SaleBase* sale,int status);

protected:
    //可以查询所有的审批信息
   ApproveExam examiner;
   OrganizationInfo orginfo;
};

#endif // MANAGERCONTROLLER_H
